<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
        content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
<!-- Fetched with credentials (cookies etc) -->
<script src="1.js"></script>

<!-- Fetched without credentials -->
<script type="module" src="1.mjs"></script>

<!-- Fetched with credentials -->
<script type="module" crossorigin src="1.mjs?"></script>

<!-- Fetched without credentials -->
<script type="module" crossorigin src="https://other-origin/1.mjs"></script>

<!-- Fetched with credentials-->
<script type="module" crossorigin="use-credentials" src="https://other-origin/1.mjs?"></script>

<!--
对于大部分基于CORS的API,如果请求来自同源则会发送凭证信息(例如cookie)

但是fetch()【←已修正】和module script除外--默认它们不会发送凭证信息。

对于同源的模块可以通过添加crossorigin属性发送凭证信息(虽然属性名看起来有点奇怪)。如果想要发送凭证到其他域，则需要设置crossorigin="use-credentials"，同时其他域的响应的头部应该带有Access-Control-Allow-Credentials: true。

目前我们已经了解了"模块只会执行一次"的规则。URL作为key来区分不同模块，所以如果先请求了一个不带凭证信息的模块，然后又请求了带凭证信息的模块,那么代码得到的还是不带凭证信息的模块。这就是为什么在上面的示例中,我在URL的后面添加了一个`?`。
-->
</body>
</html>
